//routes/users使用的登录逻辑处理函数
//导入生成token第三方
const jwt=require('jsonwebtoken')
//导入配置文件
const {secret,expires}=require('../config/index')
//导入用户操作器
const {UserModel}=require('../db/model')
//登陆操作
const login=async (req,res)=>{
    // res.send({
    //     code:1,
    //     message:'真棒！你通过了参数验证，来到了登录逻辑'
    // })

    //代码来到这里，说明通过了参数验证，可以直接用
    //拿到用户名和密码
    const {username,password}=req.body
    //去数据库找信息进行比对
    const result=await UserModel.findOne({username,password})
   //如果没有查到那就是null
   //如果查到了就返回该用户的信息（以下是先在数据库中村一条数据）
    // UserModel({
    // username:'admin2',
    // password:'C123456',
    // nickname:'杜昌珂',
    // age:37,
    // gender:'女',
    // desc:'这个人和翔哥一样懒，什么也没留下'
    //  }).save()
    // console.log(result);

    //判断登录失败
    if(!result) return res.send({code:0,message:'登录失败，请重试！'})
   //到这里说明用户查到了也正确，生成token
   const token='Bearer '+jwt.sign({id:result._id},secret,{expiresIn:expires})
   //返回登录成功的信息给前端
   res.send({
       code:1,
       message:'登录成功！',
       token,
       userId:result._id
   })
}
//获取用户信息
const info=async (req,res)=>{
// res.send({
//         code:1,
//         message:'真棒！你通过了id验证，来到了获取用户信息逻辑'
//     })
//拿到id
const {id}=req.params
//根据id获取个人信息
const result=await UserModel.findById(id)
// console.log(result);
//返回给前端
res.send({
    code:1,
    message:'获取用户信息成功！',
    info:{
        id:result._id,
        username:result.username,
        nickname:result.nickname,
        age:result.age,
        gender:result.gender,
        desc:result.desc,
        avatar:result.avatar,
        creatTime:result.creatTime
    }
})
}

//导出相关处理函数
module.exports={
    login,
    info
}